____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Interoperable Object Reference
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Die Interoperable Object Reference, kurz IOR, beschreibt eine Objektreferenz auf ein CORBA-Objekt. Es handelt sich um Objektreferenzen fΓΌr Objekte aus dem Bereich der Objektorientierung, die in verschiedenen Computern existieren und systemΓΌbergreifend genutzt werden.
Contents
β’ Weblinks
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Objekte und Referenzen allgemein
Die Objektorientierung als Methode der Strukturierung einer Software kennt Objekte, die zur Laufzeit eines Systems erzeugt werden und im Arbeitsspeicher des Computers existieren oder auch in objektorientierten Datenbanken langfristig gespeichert werden. Bei der Erzeugung solcher Objekte erhΓ€lt man in der Regel eine Referenz, die dieses soeben erzeugte Objekt jederzeit eindeutig unter allen mΓΆglichen vorkommenden Objekten identifiziert.
Diese Referenz wird dann genutzt, um Nachrichten an dieses Objekt zu senden, auf in diesem Objekt gespeicherte Daten zuzugreifen oder diese zu verΓ€ndern. Referenzen kΓΆnnen genau wie andere Variablen oder Werte weitergegeben werden.
Objekte und Referenzen in verteilten Systemen
In verteilten Systemen, bei denen sich Objekte in unterschiedlichen Computern (oder zumindest in getrennten Bereichen des Arbeitsspeichers) befinden, muss es einen Mechanismus geben, der Objekt-Referenzen ΓΌber Systemgrenzen hinweg transportieren kann. Dazu sollte es mΓΆglich sein, diese Referenz in ein fΓΌr die Γbertragung geeignetes Format zu konvertieren (Stringifizierung) oder auch fΓΌr die spΓ€tere Verwendung zu speichern.
Interoperable Object Reference
Zu diesem Zweck der Systemgrenzen ΓΌbergreifenden Kommunikation spezifiziert der CORBA-Standard die Interoperable Object Reference, kurz IOR genannt. Die IOR enthΓ€lt alle Informationen, um einen ggf. prozess- und systemΓΌbergreifenden Kommunikationskanal zu einem Objekt aufzubauen und entsprechende Nachrichten, Γ€hnlich denen innerhalb eines Prozesses, auszutauschen.
Dazu gehΓΆren Angaben wie:
β’ Art des Kommunikationsprotokolls
β’ Angaben zum Ort des Objektes, wie im Fall von TCP/IP eine IP-Adresse und ein Port
β’ Vorgaben zur Darstellung von Text und Daten, wie Codepages, Endian, VerschlΓΌsselung oder Kompression der Daten
β’ Angaben zur IdentitΓ€t des Objekts im Zielsystem
struct TaggedProfile {
ProfileId tag;
sequence <octet> profile_data;
};
struct IOR {
string type_id;
sequence <TaggedProfile> profiles;
};
struct TaggedComponent {
ComponentId tag;
sequence <octet> component_data;
};
Profiledaten und Komponentdaten enthalten eine Datenstruktur, deren Bedeutung durch das Tag (hier eine Zahl) festgelegt wird. FΓΌr einige Tags legt die CORBA-Spezifikation deren Datenstruktur fest, z. B. beschreibt ein ProfileId-Tag 0 ein IIOP Profile.
Der jeweilige ORB eines Systems bekommt die Aufgabe, IORs aus anderen Systemen (und von anderen ORBs) zu interpretieren und in eine Objektreferenz zu verwandeln oder auch Objektreferenzen in eine textuelle Interpretation zu verwandeln (stringifizierte IOR).
Hersteller, die eigene ORB-Implementierungen nach der CORBA-Spezifikation erstellen, kΓΆnnen auch eigene Tags verwenden. Um Fehlinterpretationen auszuschlieΓen, sollten diese sich jedoch nicht mit anderweitig vergebenen Tags ΓΌberschneiden. Kennt ein ORB die Bedeutung eines Tags nicht, kann und darf er die in der Datenstruktur enthaltenen Informationen nicht verwenden.
Aus einer IOR kann nicht auf die Methoden und Datenelemente des referenzierten Objektes geschlossen werden. Die einzige Angabe in der IOR ist der Typ des Objekts (type_id, auch Repository-Id) genannt, der zu der IDL korrespondieren sollte, welche das Interface dieses Objekts beschreibt.
IOR-Nachschlagewerke
Der CORBA Naming Service, der als Service ebenfalls von der OMG spezifiziert wurde, ist eine MΓΆglichkeit zur Speicherung von Objekt-Referenzen unter einem Namen. Da der Naming Service ebenso ein CORBA-Objekt darstellt, dessen Referenz bekannt sein muss, um es zu nutzen, stellt sich jedoch das Problem, wie die IOR zum Aufrufer kommt, was im CORBA-Standard nicht spezifiziert ist. Stringifizierte IORs lassen sich jedoch in Dateien speichern oder per Mail, Web oder Filetransfer verschicken.
Weblinks
β’ Binding, Migration and Scalability in CORBA, Michi Henning (PDF-Datei; 75 kB)
β’ OMG Spezifikation: CORBA 3.1, Part 2 - Interoperability (PDF-Datei; 2,1 MB)